package com.ruoyi.college.service.impl;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ruoyi.college.mapper.LabOrgKindRelRolesMapper;
import com.ruoyi.college.domain.LabOrgKindRelRoles;
import com.ruoyi.college.service.ILabOrgKindRelRolesService;
import com.ruoyi.common.core.domain.entity.SysRole;

/**
 * 机构分类可用角色Service业务层处理
 * 
 * @author winner pan
 * @date 2022-02-13
 */
@Service
public class LabOrgKindRelRolesServiceImpl implements ILabOrgKindRelRolesService 
{
    @Autowired
    private LabOrgKindRelRolesMapper labOrgKindRelRolesMapper;

    /**
     * 查询机构分类可用角色
     * 
     * @param orgKindRelRolesId 机构分类可用角色ID
     * @return 机构分类可用角色
     */
    @Override
    public LabOrgKindRelRoles selectLabOrgKindRelRolesById(Long orgKindRelRolesId)
    {
        return labOrgKindRelRolesMapper.selectLabOrgKindRelRolesById(orgKindRelRolesId);
    }

    /**
     * 查询机构分类可用角色列表
     * 
     * @param labOrgKindRelRoles 机构分类可用角色
     * @return 机构分类可用角色
     */
    @Override
    public List<LabOrgKindRelRoles> selectLabOrgKindRelRolesList(LabOrgKindRelRoles labOrgKindRelRoles)
    {
        return labOrgKindRelRolesMapper.selectLabOrgKindRelRolesList(labOrgKindRelRoles);
    }

    /**
     * 新增机构分类可用角色
     * 
     * @param labOrgKindRelRoles 机构分类可用角色
     * @return 结果
     */
    @Override
    @Transactional
    public int insertLabOrgKindRelRoles(LabOrgKindRelRoles labOrgKindRelRoles)
    {
        for(long roleId : labOrgKindRelRoles.getRoleIds()){
        	LabOrgKindRelRoles kindRelRole = new LabOrgKindRelRoles();
        	kindRelRole.setOrgKindId(labOrgKindRelRoles.getOrgKindId());
        	kindRelRole.setRequiredOpt(labOrgKindRelRoles.getRequiredOpt());
        	kindRelRole.setRoleId(roleId);
        	labOrgKindRelRolesMapper.insertLabOrgKindRelRoles(kindRelRole);
    	}
        return 1;
    }

    /**
     * 修改机构分类可用角色
     * 
     * @param labOrgKindRelRoles 机构分类可用角色
     * @return 结果
     */
    @Override
    public int updateLabOrgKindRelRoles(LabOrgKindRelRoles labOrgKindRelRoles)
    {
        return labOrgKindRelRolesMapper.updateLabOrgKindRelRoles(labOrgKindRelRoles);
    }

    /**
     * 批量删除机构分类可用角色
     * 
     * @param orgKindRelRolesIds 需要删除的机构分类可用角色ID
     * @return 结果
     */
    @Override
    public int deleteLabOrgKindRelRolesByIds(Long[] orgKindRelRolesIds)
    {
        return labOrgKindRelRolesMapper.deleteLabOrgKindRelRolesByIds(orgKindRelRolesIds);
    }

    /**
     * 删除机构分类可用角色信息
     * 
     * @param orgKindRelRolesId 机构分类可用角色ID
     * @return 结果
     */
    @Override
    public int deleteLabOrgKindRelRolesById(Long orgKindRelRolesId)
    {
        return labOrgKindRelRolesMapper.deleteLabOrgKindRelRolesById(orgKindRelRolesId);
    }

	@Override
	public List<SysRole> selectRoleListFromOrgKinds(Long orgKindId) {
		return labOrgKindRelRolesMapper.selectRoleListFromOrgKinds(orgKindId);
	}
}
